package com.train.daily.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.train.common.resp.PageResp;
import com.train.daily.dto.seat.DailyTrainSeatCountDTO;
import com.train.daily.dto.seat.DailyTrainSeatEditChoiceSeatDTO;
import com.train.daily.dto.seat.DailyTrainSeatPageDTO;
import com.train.daily.dto.seat.DailyTrainSeatQueryListDTO;
import com.train.daily.po.DailyTrainSeatPO;
import com.train.daily.resp.seat.DailyTrainSeatPageResp;
import com.train.daily.resp.seat.DailyTrainSeatQueryListResp;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * @author baitiaojun
 * @description 针对表【dailyTrainSeat(每日座位)】的数据库操作Service
 * @createDate 2025-03-01 23:55:05
 */
public interface DailyTrainSeatService extends IService<DailyTrainSeatPO> {

    PageResp<DailyTrainSeatPageResp> pageList(DailyTrainSeatPageDTO dailyTrainSeatPageDTO);

    void remove(Long id);

    void generateDailySeat(String date, List<String> trainCodes);

    List<DailyTrainSeatQueryListResp> queryTrainSeatList(DailyTrainSeatQueryListDTO dto);

    void batchEditDailyTrainSeat(List<DailyTrainSeatEditChoiceSeatDTO> dto);

    Map<String, DailyTrainSeatCountDTO> countDailyTrainSeat(LocalDate parse, List<String> trainCodes);
}
